LW2000

 

Nombre:      GameSpy 3D

Versión:       2.16

Editor:         Spy Software

Víctima:       GAMESPY.EXE

Herramientas:       SoftICE v4.00

                            W32Dasm

                            Hacker’s View v6.01

                            PE-Sniffer v1.06

                            DeShrink v1.5

                            Cerebro

Cracker:                LW2000

Tutorial:                número 4

URL:                      http://www.gamespy.com/

 

Renuncia: Este tutorial tiene una finalidad únicamente educativa. No asumo ninguna responsabilidad por el mal uso de éste material.

 

1.     Cargamos GameSpy. ¡Booom! “GameSpy - Un-Registered Version   GameSpy 3D is unlimited use shareware.“

2.     ¡Hmmmm! Vamos a intentar registrarnos. ¡Nos tenemos que asegurar que estamos offline! Pulsamos ‘Register’ e introducimos ‘LW2000’ como Name, ‘LW2000@GAMESPY.COM’ como Email y ‘[LW2000]’ como Key. Ahora pulsamos ‘Ok’.

3.     ¡Booom! Se abre la conexión telefónica a redes. Parece que también tenemos algún tipo de protección mediante Internet. Hacemos click en ‘Cancel’. ¡Booom! “The registration server is not responding.  Try again later.” Salimos de GameSpy.

4.     ¡Vamos a crackear ésta ‘criaturita’! Cargamos SoftICE y arrancamos nuevamente nuestro programa. Pulsamos ‘Register’ y volvemos a introducir nuestros datos. ¡No pulsamos ‘Ok’ todavía! Antes nos cambiamos a SoftICE con Ctrl-D y ponemos un breakpoint en getWindowTextA (“BPX GETWINDOWTEXTA”). Pulsamos F5 y volvemos a GameSpy.

5.     Hacemos click en ‘Ok’. SoftICE aparece; comoquiera que estamos en el primer campo de texto (Name), pulsamos F5 para regresar a GameSpy. Nuevamente aparece SoftICE, en el segundo campo de texto (Email), pulsamos F5 para regresar a GameSpy. Aparecerá una vez más SoftICE y pulsamos F5 para regresar a GameSpy.

6.     Ahora veremos la conexión telefónica a redes. Pulsamos ‘Cancel’. SoftICE aparecerá nuevamente. Pulsamos F11 para ir a la instrucción que realizó la llamada. Ahora sea paciente y tracee el código con F10 hasta que llegue a un ‘CALL’ que tardará mucho tiempo en finalizar. ¡Espera, merece la pena!

7.     Cuando el ‘CALL’ termine, tracee un poco más hasta llegar al siguiente código:

 

:00462F76 3BC5               cmp eax, ebp

:00462F78 0F846F010000       je 004630ED       >¡Bad Boy!

:00462F7E 85C0               test eax, eax

:00462F80 0F843C010000       je 004630C2      >¡Bad Boy!

:00462F86 8B864C010000       mov eax, dword ptr [esi+0000014C] >Su

>Serial >number

:00462F8C 8B4C240C           mov ecx, dword ptr [esp+0C]  >Serial

>Number >correcto

 

8.     Lo que queremos hacer es eliminar las dos instrucciones ‘JE’ y ver el Serial Number correcto. Traceamos hasta el primer ‘JE’. Introducimos ‘a’ para editar el código. Escribimos ‘NOP’ y después pulsamos Intro. Hacemos esto cinco veces más. Ahora tendremos seis instrucciones ‘NOP’. ‘NOP’ quiere decir ‘NO OPERATION’; en lugar de comprobar el serial, el ordenador no hará nada. ¿Por qué seis veces? El código hexadecimal de ‘JE 004630ED’ es ‘0F846F010000’, lo cual es 12 dividido por 2, que es 6. Traceamos hasta la segunda instrucción ‘JE’ y hacemos lo mismo: sí, la ponemos a ‘NOP’.

9.     Traceamos hasta pasar las líneas que hemos incluído. Escribimos “D EAX”, con lo que se nosmostrará nuestro Reg Number. Escribimos “D ECX” y se nos mostrará el Serial Number correcto. Nuestro Serial es “3Cd5-425G-g973-eh32”.

10. Escribimos “BD *” para desactivar el breakpoint. Pulsamos F5 para salir de SoftICE. Aparecerá una nueva messgeBox que nos dirá que nuestro RegCode (‘[LW2000]’) no es el correcto. Podemos ahora introducir el Serial Number correcto para registrar GameSpy, ¡antes de salir de GameSpy!

11. Vamos a hacer que nuestros cambios sean permanentes. Creo que he visto la palabra ‘shrink’ en el código; esto quiere decir que el programa está comprimido con Shrinker. ¡Parece que estoy en lo cierto!

12. Cargamos PE-Sniffer. Hacemos click en el botón ‘…’ y seleccionamos GameSpy. Ahora hacemos click en Shrinker v3.3 and Shrinker v3.4 para que Shrinker examine este fichero.

13. El resultado es que el fichero está empaquetado con Shrinker v3.4. ¡Vamos a desempaquetarlo! Cargamos DeShrink v1.5 y pinchamos en la checkBox ‘UnPack Shrinker 3.4’. Cargamos “GAMESPY.EXE” en la entrada. El resultado lo guardamos como “UNPACKED.EXE”. Después pulsamos en ‘Decompress’.

14. Salimos del programa. Cargamos “UNPACKED.EXE” en W32Dasm. Vamos a la posición de código ‘00462F76’. Recuerde que ésta es la posición que obtuvimos desde SoftICE:

 

:00462F76 3BC5               cmp eax, ebp

:00462F78 0F846F010000       je 004630ED       >¡Bad Boy!

:00462F7E 85C0               test eax, eax

:00462F80 0F843C010000       je 004630C2      >¡Bad Boy!

:00462F86 8B864C010000       mov eax, dword ptr [esi+0000014C] >Su

>Serial >number

:00462F8C 8B4C240C           mov ecx, dword ptr [esp+0C]  >Serial

>Number >correcto

        

¡Hmmm! Creo que ya hemos visto esto antes.

 

15. Ponemos la barra en ‘:00462F78 0F846F010000 JE 004630ED’. En la barra de estado veremos el offset ‘62F78h’; lo anotamos. Ponemos la barra en ‘:00462F80 0F843C010000 JE 004630C2’. En la barra de estado veremos el offset ‘62F80h’; lo anotamos. La ‘h’ quiere decir ‘hexadecimal’, podemos olvidarnos de élla; por lo tanto nuestros offsets son ‘62F78’ y ‘62F80’.

16. Salimos de W32Dasm y cargamos HIEW con “UNPACKED.EXE”. Pulsamos Intro dos veces para ir al modo DeCode. Pulsamos F5 y vamos a la posición de código ‘62F78’. Pulsamos F3 para editar y escribimos seis veces ‘90’ que es el opcode de la instrucción ‘NOP’. Pulsamos F9 para actualizar. Pulsamos F5 y vamos al offset ‘62F80’ y hacemos lo mismo que hemos hecho en el offset ‘62F78’. Pulsamos F9 para actualizar y F10 para salir.

17. Ejecutamos GameSpy e introducimos nuestros detalles.

 

¡Enhorabuena! ¡Ya somos un usuario registrado!

 

¡Se acabó! Fácil, ¿no? ¿Algún comentario? Envíeme un email a LW2000@gmx.net. o vaya a http://www.LW2000.cjb.net

 

Gracias a tKC por sus tutoriales. Empecé leyendo su primer tutorial y todavía sigo leyéndolos.

 

Traducción de: MeGaBiTe